Copyright 1984-1998 FileMaker, Inc. HBAM2016AUG95 Pro 3.0 alis@ alisA alisA VDEFA HBAM3016AUG95@ 172426606 2STR >vers JSTR# bFNET ncfrg Timeouts YO/Known Modem Strings and Keywords Choose a modem and press set Normally a modem must be initialised so that it returns the CallerID. The actual initialisation string varies per modem type. Here are 2 examples: begin keyword end keyword Caller ID Caller ID Preferences 51This file implements CallerID via the Serial Port 1999 Troi Automatisering Set Port Preferences Set Caller ID Preferences CallerID Menu Start CallerID To Main Menuinitialisation string varies per modem type. Here are 2 examples: begin keyword end keyword Caller ID Caller ID Preferences 51This file implements CallerID via the Serial Port 1999 Troi Automatisering Set Port Preferences Set Caller ID Preferences CallerID Menu Start CallerID To Main Menu `4Add RETURN to send commands (needed for most modems) eCWith the keywords as given above the script expects data like this: ABHB>> gAcModem Type Initialisation String USR sportster 28800 AT#cls=8#cid=1 Dynalink IS 128AE AT#C1 Parse String When the phone rings and the data that is sent to the computer is parsed by a script Parse CallerID to get the telephone number. We assumed here that there is a begin and an end keyword. Set init/keywords Modem Initialisation String qA&NOTE The script removes extra returns. all fieldsB error codep CallerID List CallerID Set Caller ID Preferences CallerID Menu Set Port Preferences (re)start CallerID To Main Menu Creation Date/Time Message Received to compact list Total Message History 23-02-1999 14:25:43 p 172426606 To Main Menu To Dispatch Menu To Preferences To CallerID Preferences ----- General ------ %Check for Presence of Serial plug-in )----- Caller ID Dispatch Scripting ------ $Set Known Modem strings and keywords )Open Serial Port And Prepare for CallerID Open Serial Port Initialize the port Set Dispatcher Script Process Data Received , Receive Data in global gTempResultReceived CallerIDD Creation DateF Creation TimeH MessReceived gAddCRL gAdvancedFlowControlN gBeginKeywordP gCallerIDR gCR CalcT gDataBitsV gEndKeywordX gErrorCodeZ gFlowControl\ gKnownModemTypes^ gMessageReceived` gMessageSendb gMessFromBegind gMessHistoryf gModemInitStringh gNumberj gParityl gPortNamen gPortNames Calcp gSample CallerID Datar gSpeedt gStopBitsv gTempResultReceivedx gTrue Calcz gVersion Calc Helvetica Geneva Arial Times New Roman Monaco Courier Times Futura Courier New Palatino Minion Web New York AppleGaramond Bk AppleGaramond Lt Open Serial Port Open the serial portB! ] = "" Cancel First select a valid serial port name.l portB! ] = "" Cancel First select a valid serial port name. To Main Menu |("Serial-DataWasReceived" Serial-DataWasReceived A)----- Caller ID Dispatch Scripting ------ A%Check for Presence of Serial plug-in A4Important: ALWAYS check if the plug-in is available! |("Serial-Open" ] & "|" & W & " " & _ & " " & ` & " " & a & " "& Serial-Open <> 0 = "$$-97" $$-97 Cancelm mPort is in useHw Cancelm mAn error occurred Set all globals |("Troi-Set Default Separator" "|") Troi-Set Default Separator A Open file ) = 2 ----- General ------ ----- Misc ------ BeepBeep Close Serial Port Open the serial portB< |("Serial-Close" Serial-Close To Preferences B)Check if this is FileMaker 4.0 or higher.CQ 1)) < 4 Canceld This file requires FileMaker 4.0 or higherE/Check if the Troi Grabber Plug-in is available.F| |("Serial-Version" "") 14 ) <> "Serial Plug-in" Serial-Version Serial Plug-in ) = 1 Canceld The Serial Plug-in not found. Please put The Serial Plug-in into the Extensions folder inside the FileMaker folder. Also enable all the plug-ins under the application preferences. Canceld The Serial Plug-in not found. Please put the this Plug-in into the SYSTEM directory inside the FileMaker directory. Also enable all the plug-ins under the application preferences. Set Dispatcher Script |("Serial-SetDispatchScript" ) & "| scriptkey=1") Serial-SetDispatchScript | scriptkey=1 Process Data Received C#Get the data into the global field.D&Add it to the global gMessageReceived.E$ F1Also save all this data in the global gHistory...G-...Nice for analysing the data coming in. ...H"...You may not really need this...I)...then just remove the next script step.J,Now see what data has come in and act on it. ipt step. A, Receive Data in global gTempResultReceived |("Serial-Receive" Serial-Receive 2 ) = "$$" ^ = "$$-28" $$-28 Cancel Open the port firstE- ^ = "$$-207" $$-207 Cancel Buffer overflow error.Gx Cancel An error occurred! Reset Dispatcher Script ow see what data has come in and act on it.KR |("Serial-RestoreSituation" Serial-RestoreSituation A)Open Serial Port And Prepare for CallerID Open the serial portB To Dispatch Menu Parse CallerID |("Serial-SetDispatchScript" "") Serial-SetDispatchScript Whatever You Want Do whatever you want to do....B We only beep here... Initialize the port |("Serial-Send" ] & "|" & Serial-Send <> 0 = "$$-97" $$-97 Cancelm mPort is in useEw Cancelm mAn error occurred To CallerID Preferences A$Set Known Modem strings and keywords A/This script tries to find the begin and end ...BB... of the Caller id data and then will get the number out of it. C-You may need to modify it for your situation.DGWe loop until there is no begin- and end keyword in the string anymore.EI 1 ) 1 ) t >= 1 u >= 1 H4This might be a complete record.... get the CallerIDI?Get everything from the begin keyword to the end of the message JHRemove all from the end keyword and store in the gCallerID global field.Kc Get rid of (extraneous) returnsMf 1 ) -1) f <> "" P&Now we should have a complete callerIDQ Create a record for it...R 7VDClean up gMessageReceived remove all till the end of the end keywordWL Y9>X"You can now do what ever you want.Y This script beeps.Z Try again from the end keyword[L Save History A*Save all the data in the history global...B ...You may not really need this.CC k) + ^) < 64000 E"Make some room at the beginning...FM 1000 k)) & r ="Dynalink IS128AE" Dynalink IS128AE "AT#C1" AT#C1C "Yes" YesD& "Caller: " Caller: E "RING" RINGFF r ="USR Sportster 28800" USR Sportster 28800 "AT#cls=8#cid=1" AT#cls=8#cid=1H "Yes" YesI" "NMBR =" NMBR =J "RING" HRPTH FPTHAHKES:Projecten:Troi FM Plug-In:GRAB:Troi-Grabber-Plug-in1.0a1:StudReg.fp3 MSPCA NAMEA StudReg.fp3 RPTHA StudReg.fp3 StudReg.fp3 FMP3FMP3 Troi-Grabber-Plug-in1.0a1 HKES:Projecten:Troi FM Plug-In:GRAB:Troi-Grabber-Plug-in1.0a1:StudReg.fp3 Ethernet zone McGee peter PRPTH FPTHAPKES:Projecten:Troi FM Plug-In:GRAB:Troi-Grabber-Plug-in1.0a1:samples:StudReg.fp3 MSPCA NAMEA StudReg.fp3 RPTHA :samples:StudReg.fp3 ONML"" ONML"" ONML"" NRPTH FPTHANKES:Projecten:Troi FM Plug-In:GRAB:Troi-Grabber-Plug-in1.0b1:docs:Overview.fp3 MSPCA NAMEA Overview.fp3 RPTHA :docs:Overview.fp3 Overview.fp3 FMP3FMP3 NKES:Projecten:Troi FM Plug-In:GRAB:Troi-Grabber-Plug-in1.0b1:docs:Overview.fp3 Ethernet zone McGee peter \RPTH FPTHA\KES:Projecten:Troi Plug-In 981215:Troi Plug-ins:SERIAL:Troi-Serial-Plug-in1.0b1:Portname.fp3 MSPCA NAMEA Portname.fp3 RPTHA Portname.fp3 StudReg.fp3 FMP3FMP3 samples PKES:Projecten:Troi FM Plug-In:GRAB:Troi-Grabber-Plug-in1.0a1:samples:StudReg.fp3 Ethernet zone McGee peter \RPTH FPTHA\KES:Projecten:Troi Plug-In 981215:Troi Plug-ins:SERIAL:Troi-Serial-Plug-in1.0b1:SeriExpl.fp3 MSPCA NAMEA SeriExpl.fp3 RPTHA SeriExpl.fp3 SeriExpl.fp3 FMP3FMP3 Troi-Serial-Plug-in1.0b1 \KES:Projecten:Troi Plug-In 981215:Troi Plug-ins:SERIAL:Troi-Serial-Plug-in1.0b1:SeriExpl.fp3 McGee peter ZRPTH FPTHAZKES:Projecten:Troi Plug-In 981215:Troi Plug-ins:SERIAL:Troi-Serial-Plug-in1.0b2:Person.fp3 MSPCA NAMEA Person.fp3 RPTHA Person.fp3 Portname.fp3 FMP3FMP3 Troi-Serial-Plug-in1.0b1 \KES:Projecten:Troi Plug-In 981215:Troi Plug-ins:SERIAL:Troi-Serial-Plug-in1.0b1:Portname.fp3 Ethernet zone McGee peter (LIST LISTA baud=150 baud=300 baud=600 baud=1200 baud=1800 baud=2400 baud=3600 baud=4800 baud=7200 baud=9600 baud=14400 baud=19200 baud=28800 baud=38400 baud=57600 VDEFA( (LIST VDEFA( (LIST LISTA stop=10 stop=15 stop=20 VDEFA( (LIST LISTA data=5 data=6 data=7 data=8 VDEFA( (LIST LISTA"parity=none parity=odd parity=even VDEFA( (LIST LISTA:flowControl=DtrDsr flowControl=RtsCts flowControl=XOnXOff Person.fp3 FMP3FMP3 Troi-Serial-Plug-in1.0b2 ZKES:Projecten:Troi Plug-In 981215:Troi Plug-ins:SERIAL:Troi-Serial-Plug-in1.0b2:Person.fp3 McGee peter (LIST LISTA inputControl=DTR outputControl=DSR DTR=enabled DTR=disabled inputControl=RTS outputControl=CTS RTS=enabled RTS=disabled inputControl=XOnXOff outputControl=XOnXOff VDEFA( (LIST LISTA VDEFA( (LIST LISTA&Dynalink IS128AE USR Sportster 28800 VDEFA( speedsH portsI stop bitsJ data bitsK parityL basic flow controlM advanced flow controlN Known Modems FMRLA FMRLA PortnameD CallerID VDEFA( Pro 3.0 - 4.0F! Pro 3.0 - 4.0M1 zondag maandag dinsdag woensdag donderdag vrijdag zaterdag januari februari maart april augustus september oktober november december 1st Quarter 2nd Quarter 3rd Quarter 4th Quarter Save History Parse CallerID Whatever You Want Reset Dispatcher Script Close Serial Port ----- Misc ------ ( Open file Set all globals BeepBeep |("Serial-RestoreSituation" Serial-RestoreSituation C#Get the data into the global field.D&Add it to the global gMessageReceived.E$ F1Also save all this data in the global gHistory...G-...Nice for analysing the data coming in. ...H"...You may not really need this...I)...then just remove the next script step.J,Now see what data has come in and act on it.